<?php
/*
 * [JINYUN!] (C)2001-2099 Jinyunweb.com
 * This is NOT a freeware, use is subject to license terms
 * $Id: 2017-12-13 03:39:35 apple $
*/
defined('BY_JYA') or exit('error');
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$return=array();
if($_RQ['op']=='list'){
	$params=array();
	if($_RQ['plugin_name'] && $_RQ['plugin_name']!='core'){
		$_SESSION['plugin_name']=$_RQ['plugin_name'];
	}
	if($_RQ['plugin_name']=='core'){
		$_SESSION['plugin_name']='';
	}
	if($_SESSION['plugin_name']){
		$params['plugin_name']=$_SESSION['plugin_name'];
	}
	//站点模板开关设置
	$msgtpl_set=uni_setting('msgtpl_set');
	$pindex = max(1, intval($_RQ['page']));
	$psize = 10;
	$total='';
	$list=pdo_getslice('core_tpl_template',$params,array($pindex,$psize),$total,$fields,'','id desc');
	if($list){
		foreach($list as &$row){
			$row['plugintitle']=pdo_getcolumn('core_plugins',array('name'=>$row['plugin_name']),'title');
			$row['msgtpls']=pdo_getall('core_account_tpl_template',array('uniacid'=>$_SESSION['uniacid'],'name'=>$row['name'],'plugin_name'=>$row['plugin_name']),array('id','title'));
			$isset=false;
			foreach($msgtpl_set as &$mv){
				if($row['id']==$mv['tplid']){
					$row['opentpl']=$mv['opentpl']==1?0:1;
					$row['opensms']=$mv['opensms'];
					$row['send_tplid']="{$mv['send_tplid']}";
					$row['send_smsid']="{$mv['send_smsid']}";
					$isset=true;
				}
			}
			$row['send_tplid']=$row['send_tplid']?:'';
			$row['send_smsid']=$row['send_smsid']?:'';
			if(!$isset){
				$row['opentpl']=1;
				$row['opensms']=0;
			}
		}
	}
	$return['list']=$list;
	$return['msgtpl_set']=$msgtpl_set;
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'消息提醒设置'),
			array('op'=>'help','title'=>'小程序创建模板ID教程'),
		),
		'list'=>array(
			'tip'=>'[温馨提示]：
			</br>1、每个微信公众号只能<red>添加25个</red>模板，请先检查自己公众号模板数是否满了（移步微信公众号官方后台--模板消息，查看），如果满了可能<em>影响新模板消息</em>的推送！
			</br>2、微信公众号的模板消息，小程序的订阅消息，都会自动创建，无需客户手动去（微信官网后台公众号/小程序后台创建模板）；
			</br>3、如果微信官网后台（https://mp.weixin.qq.com/）没有创建消息模板；有可能是后台公众号/小程序的业务类型不属于《IT科技/互联网|电子商务，餐饮/餐饮》类。
			</br>【小程序订阅消息必读】：
			</br>1、如果不想自动创建模板ID，可以手动添加模板ID；
			</br>2、找到对应的《消息名称》--小程序模板ID；
			</br>3、https://mp.weixin.qq.com/进入小程序，开启订阅消息；
			</br>4、公共模板库--找到跟步骤2《消息名称》类似的模板；
			</br>5、选用：公共模板库找到的模板--关键词--选择顺序跟《模板内容详情》一致；
			</br>6、提交创建小程序模板；把模板ID等填到对应的地方：模板ID；
			</br>【一些异常情况】：
			</br>1、<red>为什么微信公众号的模板消息支持，小程序不支持？</red>（答：小程序是属于订阅消息，客户必须自己订阅（</red>卖家，管理员等需要进入店员后台或者商户后台，点击授权订阅消息，才能获得消息提醒</red>），才能获得消息提醒，而且每次只能订阅3条，所以只能选择关键的三条消息）;
			</br>2、<red>为什么小程序下单时没有弹订阅窗口？</red>（答：只有商城系小程序，且必须是原生态小程序，且必须是支付成功后，才会弹窗；如果满足上面所有条件，还剩没触发弹窗，可能小程序没开通订阅模板，或者小程序类别不一致，无法自动创建模板ID。这时候只能手动创建模板ID）
			</br>3、<red>为什么小程序商户后台没有弹订阅窗口？</red>（答：订单支付成功通知卖家等模板消息，没有创建小程序ID）;
			</br>4、<red>我已经创建了小程序模板ID，弹窗订阅了，为什么没收到消息？</red>（答：有可能你创建的小程序模板ID，里面《小程序内容标识》没有对上）;
			</br><red>什么条件下会自动创建小程序模板ID？</red>
			</br>1、如果小程序开启了订阅模板；
			</br>2、小程序类目符合默认的《IT科技/互联网|电子商务，餐饮/餐饮》;
			</br>3、且该类模板消息支持小程序订阅(目前只有商城系的：<red>订单支付成功通知/订单支付成功通知卖家，订单发货通知/订单发货通知卖家，订单确认收货通知/订单确认收货通知卖家</red>六个模板支持订阅消息)；
			',
			'psize'=>$psize,'edit'=>false,'del_one'=>false,'delall'=>false,'total'=>$total,'data'=>'list','list'=>array(
			array('type'=>'string','title'=>'消息名称','name'=>'title'),
			array('type'=>'string','title'=>'关联插件','name'=>'plugintitle'),
			array('name'=>'send_tplid','title'=>'模板消息','type'=>'select_item','set'=>'set','options'=>'msgtpls','selecttitle'=>'[默认模板]'),
			array('type'=>'switch','title'=>'开启模板消息','name'=>'opentpl','set'=>'set'),
			array('name'=>'send_smsid','title'=>'短信消息','type'=>'select_item','set'=>'set','options'=>'smstpls','selecttitle'=>'[默认短信]'),
			array('type'=>'switch','title'=>'开启短信消息','name'=>'opensms','set'=>'set'),
		),'action'=>array(
			array('type'=>'href','op'=>'wxapptpl','title'=>'小程序模板ID'),
			array('type'=>'modal','op'=>'demo','title'=>'查看模板'),
		)),
		'search'=>array(
			array('name'=>'title','width'=>15,'title'=>'模板标题','type'=>'string')
		),
	);
	$return['htmls']=$htmls;
	$totalpage=ceil($total/$psize);
	$totalpage=intval($totalpage);
	$return['totalpage'] =$totalpage;
	$return['params']['page'] =$pindex;
	exi($return);
}
if($_RQ['op']=='set'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('参数错误！','error');
	}
	$update=array();
	$post=get_postdata();
	
	if(isset($post['opentpl']) || isset($post['opensms']) || isset($post['send_tplid']) || isset($post['send_smsid'])){
		$tpls=uni_setting('msgtpl_set');
		foreach($tpls as $k=>&$mv){
				if($id==$mv['tplid']){
					if(isset($post['opentpl'])){
						$mv['opentpl']=intval($post['opentpl'])?0:1;
					}
					if(isset($post['opensms'])){
						$mv['opensms']=intval($post['opensms']);
					}
					if(isset($post['send_tplid'])){
						$mv['send_tplid']=intval($post['send_tplid']);
					}
					if(isset($post['send_smsid'])){
						$mv['send_smsid']=intval($post['send_smsid']);
					}
					$isset=true;
				}
		}
		if(!$isset){
			$tpl['tplid']=$id;
			if(isset($post['opentpl'])){
				$tpl['opentpl']=intval($post['opentpl'])?0:1;
			}
			if(isset($post['opensms'])){
				$tpl['opensms']=intval($post['opensms']);
			}
			if(isset($post['send_tplid'])){
				$tpl['send_tplid']=intval($post['send_tplid']);
			}
			if(isset($post['send_smsid'])){
				$tpl['send_smsid']=intval($post['send_smsid']);
			}
			$tpls[]=$tpl;
		}
		uni_setting('msgtpl_set',$tpls);
	}
	exi('操作成功！');
}
if($_RQ['op']=='demo'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择模板！','error');
	}
	$item=pdo_get('core_tpl_template',array('id'=>$id),array('title','demo','kefumsg'));
	$return['item']=$item;
	$return['htmls']=array(
			'type'=>'look',
			'desc'=>'模板详情',
			'look'=>array(
				array('type'=>'string','title'=>'模板标题','name'=>'title','help'=>''),
				array('type'=>'text','title'=>'微信原型','name'=>'demo','help'=>''),
				array('type'=>'text','title'=>'客服消息','name'=>'kefumsg','help'=>''),
			),
	);
	exi($return);
}
if($_RQ['op']=='mydemo'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择模板！','error');
	}
	$item=pdo_get('core_account_tpl_template',array('id'=>$id),array('title','demo','kefumsg'));
	$return['item']=$item;
	$return['htmls']=array(
			'type'=>'look',
			'desc'=>'模板详情',
			'look'=>array(
				array('type'=>'string','title'=>'模板标题','name'=>'title','help'=>''),
				array('type'=>'text','title'=>'微信原型','name'=>'demo','help'=>''),
				array('type'=>'text','title'=>'客服消息','name'=>'kefumsg','help'=>''),
			),
	);
	exi($return);
}
if($_RQ['op']=='addtpl'){
	if($_RQ['id']){	
		$item=pdo_get('core_tpl_template',array('id'=>$_RQ['id']));
	}else{
		exi('请选择系统模板!','error');
	}
	$item['isfromcore']=1;
	$item['keywords']=json_decode($item['keywords'],true);
	$item['typegroup']=$item['typegroup']?:1;
    $return['msgtpl_tags']=model($item['plugin_name'].'/model')->msgtpl_tags();
	$return['item']=$item;
	$return['messagetype']=array('1'=>'发送模板消息','2'=>'发送客服消息','3'=>'发送混合消息');
	$return['status']=array('1'=>'开启','0'=>'关闭');
	$result = model('core/msg_tpl')->get_wxtpl();
	$return['item']=$item;
	exi($return);
}
if($_RQ['op']=='edittpl'){
	if($_RQ['id']){	
		$item=pdo_get('core_account_tpl_template',array('id'=>$_RQ['id'],'uniacid'=>$_SESSION['uniacid']));
	}
	$item['keywords']=json_decode($item['keywords'],true);
	$item['typegroup']=$item['typegroup']?:1;
    $return['msgtpl_tags']=model($item['plugin_name'].'/model')->msgtpl_tags();
	$return['item']=$item;
	$return['messagetype']=array('1'=>'发送模板消息','2'=>'发送客服消息','3'=>'发送混合消息');
	$return['status']=array('1'=>'开启','0'=>'关闭');
	$result = model('core/msg_tpl')->get_wxtpl();
	$return['item']=$item;
	exi($return);
}
if($_RQ['op']=='wxapptpl'){
	$_SESSION['systplid']=$_RQ['id']?:$_SESSION['systplid'];
	$systpl=pdo_get('core_tpl_template',array('id'=>$_SESSION['systplid']));
	$params=array('uniacid'=>$_SESSION['uniacid'],'wxapp_id >'=>0,'name'=>$systpl['name'],'plugin_name'=>$systpl['plugin_name']);
	$pindex = max(1, intval($_RQ['page']));
	$psize = 15;
	$total='';
	$list=pdo_getslice('core_account_tpl_template',$params,array($pindex,$psize),$total,$fields,'','id desc');
	$return['list']=$list?$list:array();
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'消息提醒列表'),
			array('op'=>'wxapptpl','title'=>'小程序模板列表'),
			array('op'=>'help','title'=>'小程序创建模板ID教程'),
		),
		'list'=>array('psize'=>$psize,'total'=>$total,'tip'=>'
			【小程序订阅消息必读】：
			</br>1、如果不想自动创建模板ID，可以手动添加模板ID；
			</br>2、找到对应的《消息名称》--小程序模板ID；
			</br>3、https://mp.weixin.qq.com/进入小程序，开启订阅消息；
			</br>4、公共模板库--找到跟步骤2《消息名称》类似的模板；
			</br>5、选用：公共模板库找到的模板--关键词--选择顺序跟《模板内容详情》一致；
			</br>6、提交创建小程序模板；把模板ID等填到对应的地方：模板ID；
		','edit_op'=>'addwxapptpl','del_op'=>'delwxapptpl','data'=>'list','list'=>array(
			array('type'=>'string','title'=>'模板id','name'=>'id'),
			array('type'=>'string','title'=>'模板名称','name'=>'title'),
			array('type'=>'string','title'=>'模板标识','name'=>'name'),
			array('type'=>'select','title'=>'所属小程序','name'=>'wxapp_id','options'=>'wxapps'),
			array('type'=>'string','title'=>'小程序ID','name'=>'wxapp_id'),
		)),
		'search_one'=>array('name'=>'title','add_op'=>'addwxapptpl'),
	);
	$return['htmls']=$htmls;
	$return['wxapps']=pdo_getall('core_account_wxapp',array('uniacid'=>$_SESSION['uniacid']),$fields,'id');
	exi($return);
}
if($_RQ['op']=='addwxapptpl'){
	if($_RQ['postdata']){
		$post=get_postdata();
		$wxapptemplate_id=$post['wxapptemplate_id'];
		$name=$post['name'];
		$plugin_name=$post['plugin_name'];
		$wxapp_id=$post['wxapp_id'];
		if(!$wxapp_id || !$wxapptemplate_id){
			exi('小程序订阅模板ID,所属小程序都需要填写！','error');
		}
		$post['keywords']=ijson_encode($post['keywords']);
		model('core/wxapp_api')->add_tpl_template_id($wxapptemplate_id,$name,$plugin_name,$_SESSION['systplid'],$wxapp_id,$post['keywords']);
		exi('设置成功！','','wxapptpl');
	}
	if($_RQ['id']){
		$item=pdo_get('core_account_tpl_template',array('id'=>$_RQ['id']));
		$item['appsubtpl_name']=$item['template_name'];
	}else{
		$item=pdo_get('core_tpl_template',array('id'=>$_SESSION['systplid']));
		unset($item['id']);
	}
	$item['keywords']=json_decode($item['keywords'],true);
	$return['item']=$item;
	$htmls=array(
		'type'=>'edit',
		'desc'=>'设置小程序模板ID',
		'tabs'=>array(
			array('op'=>'wxapptpl','title'=>'返回小程序模板列表'),
		),
		'edit'=>array(
			array('type'=>'tip','title'=>'登录小程序后台--订阅消息--公共模板库：搜索-模板编号为：<red>['.$item['appsubtpl_name'].']</red>，模板名称为：<<red>'.$item['remark'].'</red>>的模板，添加为自己的模板，然后复制：模板ID，填入下面空格！</br>如果模板编号为空：可以找近似的模板消息！'),
			array('type'=>'string','title'=>'小程序订阅模板ID','name'=>'wxapptemplate_id','help'=>'例如:AAAAAA80blFdHDC5fgq2GOu4cAYVUb4kfo'),
			array('type'=>'select','title'=>'所属小程序','name'=>'wxapp_id','options'=>'wxapps','help'=>'不同的小程序模板不一样，请勿搞混了！'),
			array(
				'type'=>'array_simple',
				'name'=>'keywords',
				'title'=>'模板内容详情',
				'noadd'=>1,
				'fields'=>array(
							array('type'=>'string','name'=>'title','title'=>'内容名称','read'=>true),
							array('type'=>'string','name'=>'value','title'=>'后台替换标识','read'=>true),
							array('type'=>'string','name'=>'kename','title'=>'小程序内容标识（必填）'),
			)),
			array('type'=>'tip','title'=>'程序内容标识示例：thing1.DATA，取其中的thing1填到上面'),
		)
	);
	$return['htmls']=$htmls;
	$fields=array('id','title','type','version','plugin_name','isdiyindex','uptime');
	$return['wxapps']=pdo_getall('core_account_wxapp',array('uniacid'=>$_SESSION['uniacid']),$fields);
	exi($return);
}
if($_RQ['op']=='delwxapptpl'){
	//删除小程序
	$id=intval($_RQ['id']);
	if($id){
		pdo_delete('core_account_tpl_template',array('id'=>$id,'uniacid'=>$_SESSION['uniacid']));
	}
	$del=trim($_RQ['del'],';');
	if($del){
		$del=explode(';',$del);
		foreach($del as $id){
			$id=intval($id);
			if($id){
				pdo_delete('core_account_tpl_template',array('id'=>$id,'uniacid'=>$_SESSION['uniacid']));
			}
		}
	}
	exi('删除成功！');
}
if($_RQ['op']=='post'){
	$post=get_postdata();
	if(!$post['isfromcore']){
		$isaddid=pdo_getcolumn('core_account_tpl_template',array('id'=>$post['id'],'uniacid'=>$_SESSION['uniacid']),'id');
	}
	$data=array(
				'title'=>$post['title'],
				'template_name'=>$post['template_name'],
				'first'=>$post['first'],
				'firstcolor'=>$post['firstcolor'],
				'keywords'=>ijson_encode($post['keywords']),
				'footer'=>$post['footer'],
				'footercolor'=>$post['footercolor'],
				'remark'=>$post['remark'],
				'kefumsg'=>$post['kefumsg'],
	);
	if($isaddid){
		pdo_update('core_account_tpl_template',$data,array('id'=>$isaddid));
		exi('保存自定义模版成功！','','goback');
	}else{
		$data['name']=$post['name'];
		$data['plugin_name']=$post['plugin_name'];
		$data['uniacid']=$_SESSION['uniacid'];
		$data['coreid']=intval($post['id']);
		pdo_insert('core_account_tpl_template',$data);
		exi('添加自定义模版成功！','','goback');
	}	
}
if($_RQ['op']=='help'){
	$return['item']=array(
		'img1'=>'../core/resource/images/help/wxapp_msg01.jpg',
		'img2'=>'../core/resource/images/help/wxapp_msg02.jpg',
		'img3'=>'../core/resource/images/help/wxapp_msg03.png',
		'img4'=>'../core/resource/images/help/wxapp_msg04.jpg',
	);
	$return['htmls']=array(
			'type'=>'look',
			'desc'=>'小程序创建模板ID教程',
			'tabs'=>array(
				array('op'=>'list','title'=>'返回消息列表'),
			),
			'look'=>array(
				array('type'=>'tip','title'=>'
					<red>什么条件下会自动创建小程序模板ID？</red>
					</br>1、如果小程序开启了订阅模板；
					</br>2、小程序类目符合默认的《IT科技/互联网|电子商务，餐饮/餐饮》;
					</br>3、且该类模板消息支持小程序订阅(目前只有商城系的：订单支付成功通知，订单发货通知，订单确认收货通知三个模板支持订阅消息)；
				'),
				array('type'=>'help','title'=>'一、如何手动创建模板ID?','help'=>'
					</br>如果不想自动创建模板ID，可以手动添加模板ID；
				'),
				array('type'=>'tip','title'=>'1、找到对应的《消息名称》--小程序模板ID--添加'),
				array('type'=>'image','name'=>'img1','title'=>''),
				array('type'=>'tip','title'=>'2、https://mp.weixin.qq.com/进入小程序，开启订阅消息；'),
				array('type'=>'tip','title'=>'3、公共模板库--找到跟步骤2《消息名称》类似的模板；'),
				array('type'=>'image','name'=>'img3','title'=>''),
				array('type'=>'image','name'=>'img2','title'=>''),
				array('type'=>'tip','title'=>'4、把对应的参数（模板ID，选小程序，小程序内容标识）填入后台；模板ID绑定成功！'),
				array('type'=>'image','name'=>'img4','title'=>''),
				array('type'=>'help','title'=>'一、其他异常问题?','help'=>'
					1、<red>为什么微信公众号的模板消息支持，小程序不支持？</red>（答：小程序是属于订阅消息，客户必须自己订阅（卖家，管理员等消息就无法获取了，因为客户下单，肯定只能订阅自己的），才能获得消息提醒，而且每次只能订阅3条，所以只能选择关键的三条消息）</br>
					2、<red>为什么小程序下单时没有弹订阅窗口？</red>（答：只有商城系小程序，且必须是原生态小程序，且必须是支付成功后，才会弹窗；如果满足上面所有条件，还剩没触发弹窗，可能小程序没开通订阅模板，或者小程序类别不一致，无法自动创建模板ID。这时候只能手动创建模板ID）
				'),
			),
	);
	exi($return);
}
?>